//
//  FCShareManager.h
//  FCShare
//
//  Created by ZhouYou on 2022/7/6.
//

#import <Foundation/Foundation.h>
#import "FCShareDefine.h"
#import "FCShareUser.h"

NS_ASSUME_NONNULL_BEGIN

typedef void(^FCShareComplete)(FCShareResultState resultState, FCSharePlatformType platformType, NSError * _Nullable error);

typedef void(^FCShareLoginComplete)(FCShareUser * _Nullable user, BOOL cancel,  NSError * _Nullable error);

typedef void(^FCWXMiniProgramComplete)(FCShareResultState resultState, NSError * _Nullable error);

@class UIViewController;

@interface FCShareManager : NSObject

+ (instancetype)instance;

/// 二维码分享app 下载地址
- (NSString *) iosURL;
#pragma mark -- 分享

/**
 展示分享View--分享链接
 webLink   分享的web地址（可为空）
 thumb     缩略图（可为空，为空默认为APPIcon，支持NSString和UIImage）
 title     标题（因各三方平台限制，最多分享30个字符，超出部分将被截断）（可为空）
 des       描述（因各三方平台限制，最多分享40个字符，超出部分将被截断）（可为空）
 currentController  当前页面Controller（仅在ipad平台使用，iPhone可为空）
 complete   回调
 
 当以上参数都为空时，默认分享APP Icon
 */
- (void)showShareWithLink:(NSString *)webLink
         thumbUrl:(nullable id)thumb
            title:(NSString *)title
            descr:(NSString *)des
currentController:(UIViewController *)currentController
         complete:(FCShareComplete)complete;

/**
 分享链接
 */
- (void)shareWithLink:(NSString *)webLink
         thumbUrl:(nullable id)thumb
            title:(NSString *)title
            descr:(NSString *)des
         type:(FCSharePlatformType)type
         complete:(FCShareComplete)complete;


/**
 展示分享View--分享图片

 image 图片对象：可为空，为空默认为APPIcon，支持NSString和UIImage
 complate 分享结果回调
 */
- (void)showShareWithImage:(nullable id)image
         currentController:(UIViewController *)currentController
                    finish:(FCShareComplete)complete;

/**
 分享图片
 */
- (void)shareWithImage:(nullable id)image
                  type:(FCSharePlatformType)type
                    finish:(FCShareComplete)complete;
 
/**
 展示分享View-- 分享下载链接，没有举报按钮
 */
- (void)showDownShareWithLink:(NSString *)webLink
         thumbUrl:(nullable id)thumb
            title:(NSString *)title
            descr:(NSString *)des
currentController:(UIViewController *)currentController
         complete:(FCShareComplete)complete;
 

#pragma mark -- 登录

/*
第三方登录
platformType  1 QQ,2 微信 , 3 新浪微博,4 apple
resultBlock  回调
*/
- (void)thirdLoginWithPlatform:(FCSharePlatformType)platformType resultBlock:(FCShareLoginComplete)resultBlock;

/**
 *  是否安装客户端（支持平台：微博、微信、QQ）
 *
 *  @param platformType 平台类型
 *
 *  @return YES 已安装，NO 尚未安装
 */
- (BOOL)isClientInstalled:(FCSharePlatformType)platformType;

/**
 是否有对应平台key（支持平台：微博、微信、QQ）

 @param platformType 平台类型
 @return YES 有对应key  NO 无对应key
 */
- (BOOL)isHasAppKey:(FCSharePlatformType)platformType;

#pragma mark -- 小程序

/**
 跳转微信小程序

 @param userName 拉起的小程序的username
 @param path 小程序路径,不填默认拉起小程序首页
 @param miniProgramType 0：正式，1：开发，2：体验
 @param complete 跳转结果

 */
- (void)fc_jumpWXMiniProgramWithUserName:(NSString *)userName
                                    path:(nullable NSString *)path
                         miniProgramType:(NSInteger)miniProgramType
                                complete:(FCWXMiniProgramComplete _Nullable)complete;


@end

NS_ASSUME_NONNULL_END


